/*登陆接口
*/

const express = require('express');
const router = express.Router();

//导入连接池对象
const sql = require('../db/index');

//编写登陆接口
//1，请求方式post
//2.'.login'，接口地址
//3，接收客户端传递的登录信息
//4，从数据库中获取用户的信息
//5，判断是否登录正确
//6，返回相应的结果
//7，导出router
/**
 * @swagger
 *       /api/login:
 *       post:
 *           description: 用户登录接口
 *           produces:
 *               - application/json
 *           parameters:
 *               - name: username
 *                 description: 用户名
 *                 required: true
 *                 type: string
 *               - name: password,
 *                 description: 密码
 *                 required: true
 *                 type: string
 *           responses:
 *               200:
 *                   description: 登录成功
 *               401:
 *                   description: 用户名或密码错误
 *               500:
 *                   description: 服务器错误
 */
router.post('/login', async (req, res) => { //异步回调
    //获取客户端传递的登录信息
    
    let { username, password } = req.body;


    //判断查询结果
    try {
        //查询数据库
        const [rows] = await sql.execute('select * from base_user where username=? and password=?', [username, password]);
        if (rows.length > 0) {
            //用户库中有对应的用户及正确密码
            res.send({
                //返回相应的字段
                code: 200,
                msg: '登录成功',
                data: rows[0],
                //token来验证用户是否登录成功,jsonwebtoken 插件
                token: Math.random().toString(36)
            })
        }
        else {
            //用户库中没有对应的用户或密码错误
            res.send({
                code: 401,
                msg: '用户名或密码错误'
            })
        }
    }
    catch (ej) {
        res.send({
            code: 500,
            msg: '服务器错误'
        })
    }
})

module.exports = router